function createComputed(getter) {
    let value;
    const update = () => {
        const oldValue = value;
        value = getter();
        // 如果新旧值不相等，则调用回调函数
        if (value !== oldValue && callback) {
            callback(value, oldValue);
        }
    };
    // 注册依赖收集器
    const collector = new DependencyCollector(() => {
        update();
    });
    // 调用一次更新函数，得到初始值
    update();
    // 返回计算属性对象
    return {
        get: () => {
            collector.collect(); // 收集依赖
            return value;
        },
        set: (newValue) => {
            value = newValue;
            // 触发更新
            callback && callback(value);
        },
        sync: () => {
            // 同步依赖数据
            collector.sync();
        },
    };
}
